package com.wn.controller;

import com.wn.entity.User;
import org.springframework.web.bind.annotation.*;

import javax.annotation.PostConstruct;
import javax.naming.Name;
import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/hello")
public class HelloController {

    /**
     * 请求地址：
     *   http://localhost:8088/hello?id=100&age=18
     *   http://localhost:8088/hello?id=100
     */
    @GetMapping
    public Map<String,Object> search(String id,Integer age){
        System.out.println("id = " + id);
        System.out.println("age = " + age);

        Map<String,Object> map = new HashMap<>();
        map.put("id",100);
        map.put("name","小猿");
        return map;
    }

    /**
     * 请求地址：
     *   http://localhost:8088/hello/200/400?id=100&age=18&name=Jack
     */
    @GetMapping("/{xx}/{xx2}")
    public String search(
            @PathVariable("xx2") String id, @PathVariable("xx") String id2, User user){
        System.out.println("id = " + id);
        System.out.println("id2 = " + id2);
        System.out.println("user = " + user);
        return "success";
    }

    @PostMapping
    public String save(@RequestBody User user){
        System.out.println("user = " + user);
        return "success";
    }

    /**
     * 请求参数是日期:
     * 1、请求日期格式： "1998-09-19"  没有问题（默认格式）
     * 2、请求日期格式： "1998-09-19 15:32:12"  【400 + Bad Request  请求参数封装错误 】
     * 解决1：在yml配置我文件中全局配置
     *       spring.jackson.date-format: yyyy-MM-dd HH:mm:ss
     *       请求格式要按照上述格式。
     * 解决2：在对象上使用jackson的注解
     *      @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     */
    @GetMapping("/find")
    public User find(@RequestBody User user) {
        System.out.println("user = " + user);
        return user;
    }

}



















